function move(_ele,_obj,_callback){
    clearInterval(_ele.t);
    
    _ele.t = setInterval(function(){
            let flag = true;

        for(let _attr in _obj){
            let now = _attr === "opacity" ? getStyle(_ele,"opacity")*100 : parseInt(getStyle(_ele,_attr));

            let sed = (_obj[_attr]-now)/10;

            sed = sed>0?Math.ceil(sed) : Math.floor(sed);

            if(now !== _obj[_attr]){
                flag = false;
            }

            _ele.style[_attr] = _attr === "opacity" ? (now+sed)/100 : now + sed + "px";
        }
        if(flag){
            clearInterval(_ele.t);
            _callback && _callback();
        }
    },30)
}

function getStyle(_ele,_attr){
    return getComputedStyle?getComputedStyle(_ele,false)[_attr] : _ele.currentStyle[_attr];
}